supernova: fixes for boost-1.49 and gcc-4.7
[supercollider.git] / Help / UGens / Synth control / Envelopes / EnvGen.html
blobb3cad3598789e196fc91c418d78405021c093f89
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <meta http-equiv="Content-Style-Type" content="text/css">
6 <title></title>
7 <meta name="Generator" content="Cocoa HTML Writer">
8 <meta name="CocoaVersion" content="1038.25">
9 <style type="text/css">
10 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Helvetica}
11 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
12 p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0000bf}
13 p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
14 p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
15 p.p6 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica; min-height: 14.0px}
16 p.p7 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 12.0px Helvetica}
17 p.p8 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco; min-height: 12.0px}
18 p.p9 {margin: 0.0px 0.0px 0.0px 57.0px; text-indent: -57.0px; font: 9.0px Monaco}
19 p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
20 p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
21 p.p12 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #0000bf}
22 p.p13 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
23 span.s1 {font: 18.0px Helvetica}
24 span.s2 {font: 9.0px Monaco}
25 span.s3 {color: #000000}
26 span.s4 {color: #0000ee}
27 span.s5 {color: #0000bf}
28 span.s6 {color: #007300}
29 span.s7 {font: 12.0px Helvetica}
30 span.s8 {color: #bf0000}
31 span.s9 {text-decoration: underline ; color: #0000ee}
32 span.Apple-tab-span {white-space:pre}
33 </style>
34 </head>
35 <body>
36 <p class="p1"><span class="s1"><b>EnvGen</b></span><span class="s2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span><b>envelope generator</b></p>
37 <p class="p2"><br></p>
38 <p class="p3"><span class="s3"><b>Inherits from: </b><a href="../../../Core/Object.html"><span class="s4"><b>Object</b></span></a></span><b> : </b><a href="../../../Core/Kernel/AbstractFunction.html"><b>AbstractFunction</b></a><b> : </b><a href="../../UGen.html"><b>UGen</b></a></p>
39 <p class="p4"><br></p>
40 <p class="p5">Plays back break point envelopes. The envelopes are instances of the Env class. See the <a href="../../../Control/Env.html"><span class="s5">Env</span></a> for more info. The arguments for <b>levelScale</b>, <b>levelBias</b>, and <b>timeScale</b> are polled when the EnvGen is triggered and remain constant for the duration of the envelope.</p>
41 <p class="p6"><b><span class="Apple-tab-span"> </span></b></p>
42 <p class="p7"><b>*ar(envelope, gate, levelScale, levelBias, timeScale, doneAction)</b></p>
43 <p class="p7"><b>*kr(envelope, gate, levelScale, levelBias, timeScale, doneAction)</b></p>
44 <p class="p8"><br></p>
45 <p class="p8"><span class="Apple-tab-span"> </span></p>
46 <p class="p7"><span class="s2"><span class="Apple-tab-span"> </span></span><b>envelope</b> <span class="Apple-tab-span"> </span>- an instance of <b>Env</b>, or an Array of Controls. (See <a href="../Control.html"><span class="s5">Control</span></a> and the example below for how to use this.)</p>
47 <p class="p7"><span class="Apple-tab-span"> </span><b>gate<span class="Apple-tab-span"> </span></b>-<b> </b>this triggers the envelope and holds it open while &gt; 0. If the Env is fixed-length (e.g. Env.linen, Env.perc), the gate argument is used as a simple trigger. If it is an sustaining envelope (e.g. Env.adsr, Env.asr), the envelope is held open until the gate becomes 0, at which point is released.</p>
48 <p class="p7"><b><span class="Apple-tab-span"> </span>levelScale</b> - scales the levels of the breakpoints.</p>
49 <p class="p7"><span class="Apple-tab-span"> </span><b>levelBias</b><span class="Apple-tab-span"> </span>- offsets the levels of the breakpoints.</p>
50 <p class="p7"><span class="Apple-tab-span"> </span><b>timeScale</b> - scales the durations of the segments.</p>
51 <p class="p7"><span class="Apple-tab-span"> </span><b>doneAction</b> - an integer representing an action to be executed when the env is finished playing. This can be used to free the enclosing synth, etc. See <a href="UGen-doneActions.html"><span class="s5">UGen-doneActions</span></a> for more detail.</p>
52 <p class="p8"><br></p>
53 <p class="p9"><span class="Apple-tab-span"> </span>{ <span class="s5">EnvGen</span>.kr(<span class="s5">Env</span>.perc, 1.0, doneAction: 2) * <span class="s5">SinOsc</span>.ar(440, 0, 0.1) }.play;</p>
54 <p class="p2"><span class="Apple-tab-span"> </span></p>
55 <p class="p4"><br></p>
56 <p class="p5"><b>Note:</b><span class="Apple-converted-space"> </span></p>
57 <p class="p4"><br></p>
58 <p class="p5">The actual <b>minimum duration </b>of a segment is not zero, but one sample step for audio rate and one block for control rate. This may result in asynchronicity when in two envelopes of different number of levels, the envelope times add up to the same total duration. Similarly, when <b>modulating times</b>, the new time is only updated at the end of the current segment - this may lead to asynchronicity of two envelopes with modulated times.</p>
59 <p class="p2"><br></p>
60 <p class="p2"><span class="Apple-tab-span"> </span></p>
61 <p class="p2"><br></p>
62 <p class="p10">// example</p>
63 <p class="p2"><br></p>
64 <p class="p11"><span class="Apple-tab-span"> </span>(</p>
65 <p class="p12"><span class="s3"><span class="Apple-tab-span"> </span></span>SynthDef<span class="s3">(</span><span class="s6">\env_help</span><span class="s3">, { </span>| out, gate = 0 |<span class="s3"><span class="Apple-converted-space"> </span></span></p>
66 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">var</span> z;</p>
67 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>z = <span class="s5">EnvGen</span>.kr(<span class="s5">Env</span>.adsr, gate) * <span class="s5">SinOsc</span>.ar(440, 0, 0.1);</p>
68 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">Out</span>.ar(out, z)</p>
69 <p class="p11"><span class="Apple-tab-span"> </span>}).send(s);</p>
70 <p class="p11"><span class="Apple-tab-span"> </span>)</p>
71 <p class="p2"><span class="Apple-tab-span"> </span></p>
72 <p class="p11"><span class="Apple-tab-span"> </span>a = Synth(<span class="s6">\env_help);</span></p>
73 <p class="p2"><span class="Apple-tab-span"> </span></p>
74 <p class="p2"><span class="Apple-tab-span"> </span></p>
75 <p class="p10"><span class="s3"><span class="Apple-tab-span"> </span></span>// turn on</p>
76 <p class="p11"><span class="Apple-tab-span"> </span>a.set(<span class="s6">\gate</span>, 1);</p>
77 <p class="p2"><span class="Apple-tab-span"> </span></p>
78 <p class="p10"><span class="s3"><span class="Apple-tab-span"> </span></span>// turn off</p>
79 <p class="p11"><span class="Apple-tab-span"> </span>a.set(<span class="s6">\gate</span>, 0);</p>
80 <p class="p2"><span class="Apple-tab-span"> </span></p>
81 <p class="p10"><span class="s3"><span class="Apple-tab-span"> </span></span>// it does not matter to what value the gate is set, as long as it is &gt; 0</p>
82 <p class="p11"><span class="Apple-tab-span"> </span>a.set(<span class="s6">\gate</span>, 2);</p>
83 <p class="p2"><span class="Apple-tab-span"> </span></p>
84 <p class="p11"><span class="Apple-tab-span"> </span>a.free;</p>
85 <p class="p2"><span class="Apple-tab-span"> </span></p>
86 <p class="p4"><br></p>
87 <p class="p4"><br></p>
88 <p class="p4"><br></p>
89 <p class="p4"><br></p>
90 <p class="p4"><br></p>
91 <p class="p13"><b>Changing an Env while playing</b></p>
92 <p class="p4"><br></p>
93 <p class="p11"><span class="s7"><span class="Apple-tab-span"> </span></span>(</p>
94 <p class="p11"><span class="Apple-tab-span"> </span><span class="s5">SynthDef</span>(<span class="s6">\env</span>, { <span class="s5">arg</span> i_outbus=0;</p>
95 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">var</span> env, envctl;</p>
96 <p class="p2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
97 <p class="p10"><span class="s3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// make a dummy 8 segment envelope</p>
98 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>env = <span class="s5">Env.</span>newClear(<span class="s5">8</span>);</p>
99 <p class="p2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
100 <p class="p10"><span class="s3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>// create a control argument array</p>
101 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>envctl = <span class="s5">Control</span>.names([<span class="s6">\env</span>]).kr( env.asArray );</p>
102 <p class="p2"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
103 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">ReplaceOut</span>.kr(i_outbus, <span class="s5">EnvGen</span>.kr(envctl, doneAction: 2));</p>
104 <p class="p11"><span class="Apple-tab-span"> </span>}).send(s);</p>
105 <p class="p11"><span class="Apple-tab-span"> </span>)</p>
106 <p class="p2"><span class="Apple-tab-span"> </span></p>
107 <p class="p11"><span class="Apple-tab-span"> </span>(</p>
108 <p class="p12"><span class="s3"><span class="Apple-tab-span"> </span></span>SynthDef<span class="s3">(</span><span class="s6">\sine</span><span class="s3">, {</span></p>
109 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">Out</span>.ar(0, <span class="s5">SinOsc</span>.ar(<span class="s5">In</span>.kr(0), 0, 0.2));</p>
110 <p class="p11"><span class="Apple-tab-span"> </span>}).send(s);</p>
111 <p class="p11"><span class="Apple-tab-span"> </span>)</p>
112 <p class="p2"><span class="Apple-tab-span"> </span></p>
113 <p class="p11"><span class="Apple-tab-span"> </span>s.sendMsg(<span class="s6">\c_set</span>, 0, 800);</p>
114 <p class="p2"><span class="Apple-tab-span"> </span></p>
115 <p class="p11"><span class="Apple-tab-span"> </span>s.sendMsg(<span class="s6">\s_new</span>, <span class="s6">\sine</span>, 1001, 1, 0);</p>
116 <p class="p2"><span class="Apple-tab-span"> </span></p>
117 <p class="p11"><span class="Apple-tab-span"> </span>e = <span class="s5">Env</span>([700, 900, 900, 800], [1, 1, 1]*0.4, <span class="s6">\exp</span>).asArray;</p>
118 <p class="p11"><span class="Apple-tab-span"> </span>s.sendBundle(<span class="s5">nil</span>, [<span class="s6">\s_new</span>, <span class="s6">\env</span>, 1002, 2, 1001], [<span class="s6">\n_setn</span>, 1002, <span class="s6">\env</span>, e.size] ++ e);</p>
119 <p class="p2"><span class="Apple-tab-span"> </span></p>
120 <p class="p11"><span class="Apple-tab-span"> </span>f = <span class="s5">Env</span>([1000, 1000, 800, 1000, 900, 1000], [1, 1, 1, 1, 1]*0.3, <span class="s6">\step</span>).asArray;</p>
121 <p class="p11"><span class="Apple-tab-span"> </span>s.sendBundle(<span class="s5">nil</span>, [<span class="s6">\s_new</span>, <span class="s6">\env</span>, 1003, 2, 1001], [<span class="s6">\n_setn</span>, 1003, <span class="s6">\env</span>, f.size] ++ f);</p>
122 <p class="p2"><span class="Apple-tab-span"> </span></p>
123 <p class="p11"><span class="Apple-tab-span"> </span>s.sendMsg(<span class="s6">\n_free</span>, 1001);</p>
124 <p class="p4"><br></p>
125 <p class="p4"><br></p>
126 <p class="p4"><br></p>
127 <p class="p2"><span class="Apple-tab-span"> </span></p>
128 <p class="p4"><br></p>
129 <p class="p13"><b>Forced release of the EnvGen</b></p>
130 <p class="p4"><br></p>
131 <p class="p5"><span class="Apple-tab-span"> </span>If the gate of an EnvGen is set to -1 or below, then the envelope will cutoff immediately. The time for it to <span class="Apple-tab-span"> </span>cutoff is the amount less than -1, with -1 being as fast as possible, -1.5 being a cutoff in 0.5 seconds, etc. <span class="Apple-tab-span"> </span>The cutoff shape is linear.</p>
132 <p class="p4"><br></p>
133 <p class="p11"><span class="s5"><span class="Apple-tab-span"> </span></span>(</p>
134 <p class="p11"><span class="Apple-tab-span"> </span><span class="s5">SynthDef</span>(<span class="s6">\stealMe</span>, { <span class="s5">arg</span> gate = 1;</p>
135 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">Out</span>.ar(0, {<span class="s5">BrownNoise</span>.ar}.dup * <span class="s5">EnvGen</span>.kr(<span class="s5">Env</span>.asr, gate, doneAction:2))</p>
136 <p class="p11"><span class="Apple-tab-span"> </span>}).send(s);</p>
137 <p class="p11"><span class="Apple-tab-span"> </span>)</p>
138 <p class="p2"><span class="Apple-tab-span"> </span></p>
139 <p class="p11"><span class="Apple-tab-span"> </span>s.sendMsg(<span class="s6">\s_new</span>, <span class="s6">\stealMe</span>, 1001, 1, 0);</p>
140 <p class="p2"><span class="Apple-tab-span"> </span></p>
141 <p class="p11"><span class="Apple-tab-span"> </span>s.sendMsg(<span class="s6">\n_set</span>, 1001, <span class="s6">\gate</span>, -1.1); <span class="s8">// cutoff in 0.1 seconds</span></p>
142 <p class="p2"><span class="Apple-tab-span"> </span></p>
143 <p class="p5"><span class="s2"><span class="Apple-tab-span"> </span></span>If the synthDef has an arg named "gate", the convenience method of <a href="../../../ServerArchitecture/Node.html"><span class="s5">Node</span></a> can be used:</p>
144 <p class="p4"><span class="Apple-tab-span"> </span></p>
145 <p class="p11"><span class="Apple-tab-span"> </span>Node-release(releaseTime)</p>
146 <p class="p2"><span class="Apple-tab-span"> </span></p>
147 <p class="p11"><span class="Apple-tab-span"> </span>d = { <span class="s5">arg</span> gate=1; {<span class="s5">BrownNoise</span>.ar}.dup * <span class="s5">EnvGen</span>.kr(<span class="s5">Env</span>.asr, gate, doneAction:2) }.play;</p>
148 <p class="p11"><span class="Apple-tab-span"> </span>d.release(3);</p>
149 <p class="p2"><br></p>
150 <p class="p2"><br></p>
151 <p class="p5"><b>Fast triggering tests</b></p>
152 <p class="p4"><br></p>
153 <p class="p11"><span class="s7"><span class="Apple-tab-span"> </span></span>(</p>
154 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">{</span></p>
155 <p class="p12"><span class="s3"><span class="Apple-tab-span"> </span></span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>EnvGen<span class="s3">.kr(</span></p>
156 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Env.new([ 0.001, 1, 0.5, 0 ], [ 0.01, 0.3, 1 ], -4, 2, nil),<span class="Apple-converted-space"> </span></p>
157 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Impulse.kr(10)</p>
158 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>) * <span class="s5">SinOsc</span>.ar(440, 0, 0.1)<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></p>
159 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}.play;</p>
160 <p class="p11"><span class="Apple-tab-span"> </span>)</p>
161 <p class="p2"><span class="Apple-tab-span"> </span></p>
162 <p class="p11"><span class="Apple-tab-span"> </span>(</p>
163 <p class="p12"><span class="s3"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>{<span class="Apple-converted-space"> </span></p>
164 <p class="p12"><span class="s3"><span class="Apple-tab-span"> </span></span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>EnvGen<span class="s3">.kr(</span></p>
165 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">Env</span>.perc( 0.1, 0.0, 0.5, 1, <span class="s6">\welch</span> ),<span class="Apple-converted-space"> </span></p>
166 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>Impulse.kr(100),<span class="Apple-converted-space"> </span></p>
167 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>timeScale: 0.1</p>
168 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>) * <span class="s5">SinOsc</span>.ar(440, 0, 0.3)</p>
169 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>}.play;</p>
170 <p class="p11"><span class="Apple-tab-span"> </span>)</p>
171 <p class="p2"><br></p>
172 <p class="p2"><br></p>
173 <p class="p5"><b>Modulating the levelScale</b></p>
174 <p class="p2"><br></p>
175 <p class="p10">// no, it doesn't take a ugen in</p>
176 <p class="p11">(</p>
177 <p class="p11"><span class="Apple-tab-span"> </span>{<span class="Apple-converted-space"> </span></p>
178 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">EnvGen</span>.kr(</p>
179 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">Env</span>.asr( 0.1, 1.0, 0.5, <span class="s6">\welch</span> ),<span class="Apple-converted-space"> </span></p>
180 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>1.0,<span class="Apple-converted-space"> </span></p>
181 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">FSinOsc</span>.ar(1.0).range(0.0, 1.0),<span class="Apple-converted-space"> </span></p>
182 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>timeScale: 0.1</p>
183 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>) * <span class="s5">SinOsc</span>.ar(440, 0, 0.3)</p>
184 <p class="p11"><span class="Apple-tab-span"> </span>}.play;</p>
185 <p class="p2"><br></p>
186 <p class="p11">)</p>
187 <p class="p10">// an .ir rate input, a float or an ir rate ugen like <a href="../../Random/Rand.html"><span class="s9">Rand</span></a> would work</p>
188 <p class="p11">(</p>
189 <p class="p11"><span class="Apple-tab-span"> </span>{<span class="Apple-converted-space"> </span></p>
190 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">EnvGen</span>.kr(</p>
191 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">Env</span>.asr( 0.1, 1.0, 0.5, <span class="s6">\welch</span> ),<span class="Apple-converted-space"> </span></p>
192 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>1.0,<span class="Apple-converted-space"> </span></p>
193 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="s5">Rand</span>(0.1, 1.0),<span class="Apple-converted-space"> </span></p>
194 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>timeScale: 0.1</p>
195 <p class="p11"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>) * <span class="s5">SinOsc</span>.ar(440, 0, 0.3)</p>
196 <p class="p11"><span class="Apple-tab-span"> </span>}.play;</p>
197 <p class="p11">)</p>
198 <p class="p4"><br></p>
199 <p class="p4"><br></p>
200 </body>
201 </html>